using System;
namespace ServiceStack
{
	[AttributeUsage]
	public class RouteAttribute : AttributeBase
	{
		public string Path
		{
			get;
			set;
		}
		public string Summary
		{
			get;
			set;
		}
		public string Notes
		{
			get;
			set;
		}
		public string Verbs
		{
			get;
			set;
		}
		public int Priority
		{
			get;
			set;
		}
		public RouteAttribute(string path) : this(path, null)
		{
		}
		public RouteAttribute(string path, string verbs)
		{
			this.Path = path;
			this.Verbs = verbs;
		}
		protected bool Equals(RouteAttribute other)
		{
			return base.Equals(other) && string.Equals(this.Path, other.Path) && string.Equals(this.Summary, other.Summary) && string.Equals(this.Notes, other.Notes) && string.Equals(this.Verbs, other.Verbs) && this.Priority == other.Priority;
		}
		public override bool Equals(object obj)
		{
			return obj != null && (this == obj || (obj.GetType() == base.GetType() && this.Equals((RouteAttribute)obj)));
		}
		public override int GetHashCode()
		{
			return ((((base.GetHashCode() * 397 ^ ((this.Path != null) ? this.Path.GetHashCode() : 0)) * 397 ^ ((this.Summary != null) ? this.Summary.GetHashCode() : 0)) * 397 ^ ((this.Notes != null) ? this.Notes.GetHashCode() : 0)) * 397 ^ ((this.Verbs != null) ? this.Verbs.GetHashCode() : 0)) * 397 ^ this.Priority;
		}
	}
}
